package com.hulk.dryad.admin.service;

import com.hulk.dryad.persistence.entity.SysUserPost;
import com.hulk.dryad.manage.boot.injector.SuperService;

import java.util.Collection;
import java.util.List;
import java.util.Set;

/**
 * <p>
 * 用户与岗位关联表 服务类
 * </p>
 *
 * @author hulk
 * @since 2021-04-01
 */
public interface SysUserPostService extends SuperService<SysUserPost> {

	/**
	 * 根据用户id查找
	 *
	 * @param userId 用户id
	 * @return 集合
	 */
	List<SysUserPost> getListByUserId(Long userId);

	/**
	 * 保存用户角色
	 *
	 * @param userId  用户id
	 * @param postIds 岗位id列表
	 * @return 是否成功
	 */
	boolean saveByUserIdAndPostIds(Long userId, List<Long> postIds);

	/**
	 * 删除用户岗位
	 *
	 * @param userId 用户id
	 * @return 是否成功
	 */
	boolean removeByUserId(Long userId);

	/**
	 * 批量删除用户岗位
	 *
	 * @param userIds 用户id
	 * @return 是否成功
	 */
	boolean removeByUserIds(Set<Long> userIds);

	/**
	 * 批量删除岗位
	 *
	 * @param postIds 用户id
	 * @return 是否成功
	 */
	 boolean removeByPostIds(Set<Long> postIds);
	/**
	 * 查询用户岗位列表
	 *
	 * @param postIds 岗位id集合
	 * @return 用户岗位集合
	 */
	List<SysUserPost> getListByPostIds(Collection<Long> postIds);
	/**
	 * 根据用户id查询岗位id集合
	 *
	 * @param userId 用户ID
	 * @return 岗位id集合
	 */
	 Set<Long> getPostIdsByUserId(Long  userId);

}
